aleでRe:VIEWのlinterにRedPenを使う際に必要な修正箇所をまとめてみた
はじめに
vimでRe:VIEWフォーマット文書を校正する場合、aleベースだとlinterはRedPen一択になります。ただ、aleからのRedpen呼び出しはオプションについて余り考慮されていないのが事実です。
confファイルの設定で嵌りやすい場所や、公式ドキュメントでの記述についての補足等を含めて、動作するまでの過程をまとめました。version 1.10.4ベースとなります。
RedPenの導入
インストール後、設定ファイルの編集を行います。
brew install redpen
設定ファイルの指定
公式ドキュメントによると、設定ファイルの適用は以下の順です。
- 作業ディレクトリのredpen-conf.xml
- 作業ディレクトリのredpen-conf-{lang}.xml
- $REDPEN_HOME/confのredpen-conf.xml
- $REDPEN_HOME/confのredpen-conf-{lang}.xml
{lang}
はLOCALE設定に依存するとありますが、実装を見る限りでは実行時オプションの-L
か--lang
の指定に基づくもののようです。
aleのlinter指定を使う場合、-L
オプションが呼び出しに含まれておらず、且つredpen-conf.xml
が存在しないため、redpen-conf-en.xml
が適用されます。redpen-conf-ja.xml
を複製してredpen-conf.xml
として設置するのが手っ取り早いでしょう。
なお、HomeBrew経由で導入する場合は設定ファイルが/usr/local/Cellar/redpen/
以下にあるため、以下のような操作となります。
cp /usr/local/Cellar/redpen/$(redpen --version)/libexec/conf/redpen-conf-ja.xml /usr/local/Cellar/redpen/$(redpen --version)/libexec/conf/redpen-conf.xml
設定ファイル初期状態で日本語の校正をすると、句点と句読点がエラー扱いになります。そこで以下の指定を追加します。
<symbols> <symbol name="FULL_STOP" value="。"/> <symbol name="COMMA" value="、" /> </symbols> </redpen-conf>
value
に複数の文字を指定することは出来ない点だけ注意しましょう。
aleにreviewのlinter指定を入れる
プラグイン指定が漏れている場合は、以下のように追加します。
[[plugins]] repo = 'w0rp/ale' hook_add = ''' let b:ale_linters = { \ 'review': ['redpen'] \}
以降、Re:VIEWのドキュメント編集時にLinterが起動するようになります。
あとがき
aleでRe:VIEWの校正を行おうとしたものの意図した通りにredpenが動作せず、ドキュメントとソースコードを辿ってみた結果、想定外の指定になっていたというところでした。
割と嵌りどころであり、今回の記事と自身の環境でのパス等が一致しない場合は、自身の環境に合わせた調整が必要になります。